package org.finir.fakturisanje.business.service.jasper;

import java.text.DateFormat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.finir.fakturisanje.persistence.Faktura;
import org.finir.fakturisanje.persistence.StavkaFakture;

public class DataPopulation {

	public static List<FakturaVar> pupulateFaktura(Faktura f,
			List<StavkaFakture> stavke) {

		List<FakturaVar> data = new ArrayList<FakturaVar>();

		FakturaVar fd;
		for (StavkaFakture stavkaFakture : stavke) {
			fd = new FakturaVar();
			fd.setCena(stavkaFakture.getCena());
			fd.setIznosBezPDV(stavkaFakture.getKolicina()
					* stavkaFakture.getCena());
			fd
					.setIznosPoreza(stavkaFakture.getPoreskaTarifa()
							.getIznosPoreza());
			fd.setJedinicaMere(stavkaFakture.getJedinicaMere());
			fd.setKolicina(stavkaFakture.getKolicina());
			Double pdv = stavkaFakture.getKolicina() * stavkaFakture.getCena()
					* stavkaFakture.getPoreskaTarifa().getIznosPoreza() / 100;
			fd.setPDV(pdv);

			fd.setVrednost(stavkaFakture.getCena()
					* stavkaFakture.getKolicina() + pdv);
			fd.setRb(stavkaFakture.getRb());
			fd.setUsluga(stavkaFakture.getUsluga().getNaziv());
			data.add(fd);

		}

		return data;
	}

	@SuppressWarnings("unchecked")
	public static Map pupulateFakturaMap(Faktura f) {
		Map map = new HashMap();

		map.put("brFakture", f.getBrojFakture());

		map.put("datumIzdavanja", DateFormat.getDateInstance().format(
				f.getDatum()));
		map.put("valuta", DateFormat.getDateInstance().format(f.getValuta()));
		map.put("radniNalog", f.getRadniNalog());
		map.put("otpremnica", f.getOtpremnica());
		map.put("nazivI", f.getPreduzece().getNaziv());
		map.put("adresaI", f.getPreduzece().getAdresa());
		map.put("mestoI", f.getPreduzece().getMesto());
		map.put("JIBI", f.getPreduzece().getJIB());
		map.put("JMBI", f.getPreduzece().getJMB());
		map.put("telI", f.getPreduzece().getTelefon());
		map.put("ziroRacunI", f.getPreduzece().getZiroRacun1());
		map.put("nazivK", f.getKomitent().getNaziv());
		map.put("adresaK", f.getKomitent().getAdresa());
		map.put("mestoK", f.getKomitent().getMesto());
		map.put("JIBK", f.getKomitent().getJIB());
		map.put("JMBK", f.getKomitent().getJMB());
		map.put("napomena", f.getNapomena());
		map.put("ziroRacunI2", null);
		map.put("recima", f.getUkupnoRecima());
		return map;

	}

}
